1. Field of the Invention
The present invention relates to the area of systems management. More particularly, the invention relates to means and a method for determining and managing application performance.
2. Description of the Related Art
Business applications today are critical elements of practically every business and organization. Determining whether these applications are functioning properly is the single most important issue for systems management. Many techniques have been created in host-centric environments to address this issue. Because of the rapid migration toward distributed applications, systems management vendors have begun to address distributed application performance with new techniques. There are mainly three approaches to systems management on the market, based on standards from Tivoli, Computer Associates and Microsoft. While all of these approaches can be perceived as defining an industry standard, the Tivoli approach is partially a de jure standard too (i.e. the systems management framework of Object Management Group (OMG)). Many systems management vendors support the Tivoli framework (called TME10) and its Application Management Specification (AMS). This specification enables a consistent development of management-ready applications.
AMS is complemented by the so-called Application Response Measurement (ARM) technique together with its application programming interface (API). The ARM API enables distributed applications to provide critical information about business transactions from the perspective of business operations. This API allows the development of distributed applications which pass information to the systems management environment, which is critical for performance management in terms of business operations. Based on this information, appropriate tools can measure service level agreements and signal early warnings of poor performance etc. in terms of business functions. With this information, systems management software can measure and report service level agreements, receive early warning of poor performance, notify operators or automation routines as soon as a transaction is not completing on time, and help isolate slowdowns. An overview on this technology is given in a white paper available from Tivoli via the Internet at http://www.tivoli.com/o_products/html/body_map_wp.html and incorporated herein by reference.
The monitoring of the status of an application takes place during runtime. Primarily it is used for performance measurement of key application transactions. Exploitation of this technology results in advantages in terms of usability and comprehensibility when compared with the corresponding monitoring capabilities available today for networks, database systems etc. As for providing the same information by other techniques, for example from reports describing network latency, response times, I/Os etc. for the various granular pieces of an application, it is very cumbersome (if possible at all) to derive data from them that can be used to prove the fulfillment of service level agreements between IT departments and their users.
Application response measurement technology assumes that the managed application is a self-instrumented component. This means that the application itself has to use the ARM API to exchange information with the systems management environment. This requires changes to existing applications or explicitly adding code to newly written applications. In spite the benefits of the application response measurement technology it currently will not be the complete solution for all situations, because it requires applications to be instrumented to invoke the API, which requires additional effort, and because the instrumentation is not always possible (the source code is owned by another organization or is no longer available etc.). As admitted by the providers of the technology, this will restrict the area of applicability of ARM. Especially the application provider has to decide which of the systems management environments to adhere to, which in the worst case means that he has to furnish for all of them.
The technology of invocation agents is offered within the area of application integration systems, which support the integration of applications, thus allowing the users to access these applications from a single environment. The integrated applications may even cooperate with one another. Also, depending on the capabilities of the application integration system, it may even support independently designed applications. Even different legacy applications, which have not been developed with the intention of cooperation, can work together through such an approach. Invocation agents can be found in a multitude of runtime environments like in workflow systems, in message brokers or component brokers (like the Common Object Request Broker Architecture (CORBA) standard from OMG ). Further information may be found for instance in the documentation for IBM""s workflow system FlowMark available in every IBM sales office. Further information with respect to message and component brokers is given in R. Schulte, Message brokers: A focussed approach to application integration, Gartner Group, Strategic Analysis Report SSA R-401-102, 1996.
The main purpose of an invocation agent is to isolate the rest of the runtime components from the idiosyncrasies of invoking applications which implement the proper business functions. Especially, invocation agents prepare the input for an application as required, set the appropriate security context etc.
The invention is based on the objective to improve the exploitation of application response measurement technology for all kind of applications and all types of application response measurement systems. In particular the present invention is targeted at a reduction of the instrumentation effort allowing an application to participate within an application response measurement system.
These objectives are achieved by the present invention, which contemplates an invocation agent for invoking an application instance. The invocation agent comprises instrumentation means interacting with an application response measurement system (ARM) to provide response measurement on behalf of the application instance by the ARM.
Application Response Measurement (ARM) assumes that the managed application is a self-instrumented component. Normally this would mean that the application itself has to use the ARM API to exchange information with the systems management environment. Thus this would require invasive changes to existing applications or explicitly adding code to newly written applications. This additional effort would restrict the area of applicability of ARM. Especially the application provider has to decide which of the systems management environments to adhere to, which in the worst case means that he has to furnish for all of them. Even worse, the instrumentation is not always possible; the source code is owned by another organization or is no do longer available etc.
The present invention enables the management and measurement of application performance in systems management environments without special instrumentation of the corresponding applications.
The basic idea of the present invention is not to instrument the application components. The present invention contemplates instrumenting the invocation agent instead, which in turn is responsible for calling the application for execution. This solution provides application response measurement without any modification of the application being measured. As a consequence, no special code has to be added to newly or existing applications to enable them for response measurement. It is the invocation agent that makes the appropriate ARM calls to furnish the instrumentation on behalf of the application. Moreover, as the invocation agent is a generic component independent from the specific application, instrumentation of the invocation component has to take place only once and is available for all applications called by the invocation agent.
All applications (existing or newly written) which are started via invocation agents can be measured without any effort by the application provider. This enablement represents a competitive advantage of the provider of the invocation agent especially from the point of view of large customers with distributed environments using systems management software to manage and monitor applications"" responsiveness.
More and more environments are created which use the technology of invocation agents to start applications. Such environments encompass workflow systems, message brokers, object request brokers (for example, IBM""s CBConnector and Microsoft""s DCOM), and remote procedure calls. Putting instrumentation code necessary to furnish services of the overall environment into the invocation agent will save a lot of money at the application provider side and will thus result in the attractiveness of the target environment for the application provider.
There are different and incompatible ARM products in the market place. Without the present invention the application provider has to decide which of the systems management environments to adhere to, which in the worst case means that he has to furnish for all of them. The present invention allows one to make this decision on the application integration level. Moreover as the invocation agent has the information on which application it has to start, the present invention is flexible enough to allow one to make the decision, which ARM product to involve, on the basis of each individual application. Therefore in accordance with the present invention an application is (to a certain extent) decoupled from the specific ARM product.
Additional advantages are accomplished in a preferred embodiment of the proposed invention in which the instrumentation means of the invocation agent is executed outside of the response measurement scope of the application being measured.
By explicitly performing all invocation agent activities not directly relating to the application execution before starting or after terminating the response measurement, it is guaranteed that the measured data are precise and relate to the application execution and not to the processing of the invocation agent.
Additional advantages are accomplished in a preferred embodiment of the proposed invention in which the instrumentation means further comprises application response measurement setup means for requesting the ARM to measure the response of the application instance and application response measurement termination means for requesting the ARM to terminate the response measurement.
Through these two distinctive means the invocation agent is enabled to precisely control the xe2x80x9ctime windowxe2x80x9d, in which the ARM will associate the response measurement data to the application. Such a feature allows the invocation agent to perform extra processing, which will not enter the response measurement data of the application. Thus it is guaranteed that the measured data are precise and relate to the application execution and not to the processing of the invocation agent.
Additional advantages are accomplished in a preferred embodiment of the proposed invention in which the application response measurement setup means further identifies a transaction of the application instance to the ARM to be measured. The application response measurement termination means further identifies the transaction to the ARM for which the response measurement is to be terminated.
The present invention makes maximal use of information available to the invocation agent. As the invocation xe2x80x9cknowsxe2x80x9d which application/transaction it has to invoke it is also able to share this information with the ARM. The ARM is thus able to associate the measured data with the correct application/transaction.
Additional advantages are accomplished in a preferred embodiment of the proposed invention in which the instrumentation means further comprises determination means for determining whether the application instance is to be measured by the ARM. Selectively based on such determination the application response measurement setup means and the application response measurement termination means are executed.
The present invention makes maximal use of information available to the invocation agent. An application typically is integrated within an larger environment from within the invocation agent starts the application. Configuration information indicates which of the applications is to be measured. Through the determination means the invocation agent approach is a flexible approach allowing one to trigger response measurement for certain applications while other applications do not participate in the response measurement process. This teaching would even be able to involve different ARM systems for different applications for response measurement.
Additional advantages are accomplished in a preferred embodiment of the proposed invention in which the invocation agent is part of a workflow management system, or part of a message broker.
Due to the flexibility of the present invention, it can be perfectly applied to two modern and important environments, which will play an important role in the future.
The present invention also contemplates a method of providing a response measurement for an application instance by an application response measurement system (ARM). In accordance with this aspect of the invention, in a first step an invocation agent requests the ARM to measure the response of the application instance to provide response measurement on behalf of the application instance by the ARM. In a second step the invocation agent invokes the application instance, and in a third step the invocation agent requests the ARM to terminate the response measurement.
Benefits related to this teaching have been discussed above.
Additional advantages are accomplished in a preferred embodiment of the proposed invention in which in the first step the invocation agent further identifies a transaction of the application instance to the ARM to be measured, and wherein in the third step the invocation agent further identifies to the ARM the transaction for which the response measurement is to be terminated.
Benefits related to this teaching have been discussed above.
Additional advantages are accomplished in a preferred embodiment of the proposed invention in which the invocation agent determines before executing the first step whether the application instance is to be measured by the ARM. Moreover it is taught that selectively based on the determination the first and the third step are executed.
Benefits related to this teaching have been discussed above.
Additional advantages are accomplished in a preferred embodiment of the proposed invention in which the invocation agent is part of a workflow management system, or wherein the invocation agent is part of a message broker.
Benefits related to this teaching have been discussed above.